1 /*
2   D bindings for gperftools(Google Performance Tools).
3   Authors:    Prasun Anand
4   Copyright:  Copyright (c) 2017, Prasun Anand. All rights reserved.
5   License:    BSD 3-Clause License
6 */
7 
8 module gperftools_d.malloc_hook_c;
9 
10 extern (C):
11 
12 int MallocHook_GetCallerStackTrace (
13     void** result,
14     int max_depth,
15     int skip_count);
16 
17 
18 alias MallocHook_NewHook = void function (const(void)* ptr, size_t size);
19 int MallocHook_AddNewHook (MallocHook_NewHook hook);
20 int MallocHook_RemoveNewHook (MallocHook_NewHook hook);
21 
22 alias MallocHook_DeleteHook = void function (const(void)* ptr);
23 int MallocHook_AddDeleteHook (MallocHook_DeleteHook hook);
24 int MallocHook_RemoveDeleteHook (MallocHook_DeleteHook hook);
25 
26 alias MallocHook_PreMmapHook = void function (const(void)* start, size_t size, int protection, int flags, int fd, int offset);
27 int MallocHook_AddPreMmapHook (MallocHook_PreMmapHook hook);
28 int MallocHook_RemovePreMmapHook (MallocHook_PreMmapHook hook);
29 
30 alias MallocHook_MmapHook = void function (const(void)* result, const(void)* start, size_t size, int protection, int flags, int fd, int offset);
31 int MallocHook_AddMmapHook (MallocHook_MmapHook hook);
32 int MallocHook_RemoveMmapHook (MallocHook_MmapHook hook);
33 
34 alias MallocHook_MmapReplacement = int function (const(void)* start, size_t size, int protection, int flags, int fd, int offset, void** result);
35 int MallocHook_SetMmapReplacement (MallocHook_MmapReplacement hook);
36 int MallocHook_RemoveMmapReplacement (MallocHook_MmapReplacement hook);
37 
38 alias MallocHook_MunmapHook = void function (const(void)* ptr, size_t size);
39 int MallocHook_AddMunmapHook (MallocHook_MunmapHook hook);
40 int MallocHook_RemoveMunmapHook (MallocHook_MunmapHook hook);
41 
42 alias MallocHook_MunmapReplacement = int function (const(void)* ptr, size_t size, int* result);
43 int MallocHook_SetMunmapReplacement (MallocHook_MunmapReplacement hook);
44 int MallocHook_RemoveMunmapReplacement (MallocHook_MunmapReplacement hook);
45 
46 alias MallocHook_MremapHook = void function (const(void)* result, const(void)* old_addr, size_t old_size, size_t new_size, int flags, const(void)* new_addr);
47 int MallocHook_AddMremapHook (MallocHook_MremapHook hook);
48 int MallocHook_RemoveMremapHook (MallocHook_MremapHook hook);
49 
50 alias MallocHook_PreSbrkHook = void function (ptrdiff_t increment);
51 int MallocHook_AddPreSbrkHook (MallocHook_PreSbrkHook hook);
52 int MallocHook_RemovePreSbrkHook (MallocHook_PreSbrkHook hook);
53 
54 alias MallocHook_SbrkHook = void function (const(void)* result, ptrdiff_t increment);
55 int MallocHook_AddSbrkHook (MallocHook_SbrkHook hook);
56 int MallocHook_RemoveSbrkHook (MallocHook_SbrkHook hook);
57 
58 MallocHook_NewHook MallocHook_SetNewHook (MallocHook_NewHook hook);
59 MallocHook_DeleteHook MallocHook_SetDeleteHook (MallocHook_DeleteHook hook);
60 MallocHook_PreMmapHook MallocHook_SetPreMmapHook (MallocHook_PreMmapHook hook);
61 MallocHook_MmapHook MallocHook_SetMmapHook (MallocHook_MmapHook hook);
62 MallocHook_MunmapHook MallocHook_SetMunmapHook (MallocHook_MunmapHook hook);
63 MallocHook_MremapHook MallocHook_SetMremapHook (MallocHook_MremapHook hook);
64 MallocHook_PreSbrkHook MallocHook_SetPreSbrkHook (MallocHook_PreSbrkHook hook);
65 MallocHook_SbrkHook MallocHook_SetSbrkHook (MallocHook_SbrkHook hook);